Method to Store a Secret QR Code into a Colored Secure QR Code

ABSTRACT

The present invention embodies a technique, referred to as Secure QR Codes, which not only provides aesthetically enhanced QR codes but also allows for security. It can embed a standard black and white QR code, referred to as a public QR code, and a secret QR code, both into a secure QR code. The secure QR code produced is composed of colored cells. The public black and white QR code must first be, either aesthetically enhanced into an enhanced colored QR code, or transformed into a colored QR code with cells of uniform color obtained by transforming each of the black and white cells of the public QR code into cells that takes a color from a subset of possible colors, such that the luminance of each colored cell approximates accurately the black or white luminance values of the public QR code.

REFERENCE TO RELATED APPLICATION

This application claims inventions which were disclosed in Provisional Patent Application No. 62/217,155, filed Sep. 11, 2015, entitled “METHOD TO STORE A SECRET QR CODE INTO A COLOR QR CODE”. The benefit under 35 USC §119(e) of the above mentioned United States Provisional Application is hereby claimed, and the aforementioned application is hereby incorporated herein by reference.

FIELD OF THE INVENTION

This invention relates to a method to store a secret quick response (QR) code into a colored secure QR code.

BACKGROUND OF THE INVENTION

Quick response (QR) codes have rapidly emerged as a widely used inventory tracking and identification method in transport, manufacturing, and retail industries. Their popularity is due to the proliferation of smart phones, their capability of accessing on line resources as well as its high storage capacity and speed of decoding. QR codes are used in a variety of applications, such as accessing web sites, downloading personal card information, posting information, social networks, initiating phone calls, reproducing videos or opening text documents. This versatility makes them a valuable tool in any industry that seeks to engage mobile users from printed materials. The aesthetic appearance of QR codes has received considerable attention recently due to their use in advertising, billboards, and brand identification. The main challenge of any embedding method is that they should result in codes that are decodable by standard applications, yet produce little distortion in the embedded image.

U.S. Patent application 20150324946 to Arce et al. discloses a method to aesthetically enhance QR codes which uses convex optimization to minimize a visual distortion metric subject to a constraint in the probability of correct QR decoding. The algorithm can be used to embed any color, or black and white image/graphic, into a standard QR code. It provides full area coverage, all with bounded probability of error.

U.S. Pat. No. 8,144,922 to Kawabe discloses a method in which a two- dimensional code that represents information by means of a cell dot distribution pattern, formed by having a plurality of colored cells and a logo mark, are superimposed.

U.S. Pat. No. 8,851,392 to Shinotami discloses an apparatus comprising display control unit which displays image-added two-dimensional codes in which a two-dimensional code presenting given information is superimposed on a first given image to show at least a portion of the two-dimensional code within a region where the first given image is shown

U.S. Patent application 20130112760 to Schory discloses systems and methods for the automated generation of QR codes with embedded images therein are provided. The QR code has an active, machine-readable portion and a background portion. An example system comprises an image identification module to identify a human-readable image.

U.S. Patent application 20130026241 to Sakahashi discloses a service, and a system, applications and an associated ecosystem for the consistent and reliable production, creation, generation, management and utilization of two-dimensional (2D′) barcodes (Codes') featuring embedded Images, designating the alignment position and alignment size of the embedding Images in 2D Codes and enabling the corresponding outputted Code files by the Device System to be downloaded and or showcased digitally

U.S. Patent application 20140144996 to Friedman discloses a method of generating a readable matrix code image encoding a message based on an input image and a readable matrix coding specification, comprising: calculating function areas readable to comply with a function patterns specification; determining an extent of free cells and derived cells according to a code word specification; calculating decode input values for free cells such that the appearance of the free cells compared to respective areas of the input image complies with a visual perceptual similarity criterion.

SUMMARY OF THE INVENTION

The present invention embodies a technique, referred to as Secure QR Codes, which not only provides aesthetically enhanced QR codes but also allows for security. It can embed a standard black and white QR code, referred to as a public QR code, and a secret QR code, both into a secure QR code. The secure QR code produced is composed of colored cells. The public black and white QR code must first be, either aesthetically enhanced into an enhanced colored QR code, or transformed into a colored QR code with cells of uniform color obtained by transforming each of the black and white cells of the public QR code into cells that takes a color from a subset of possible colors, such that the luminance of each colored cell approximates accurately the black or white luminance values of the public QR code.

BRIEF DESCRIPTION OF THE FIGURES

The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.

FIG. 1 illustrates the steps of encoding the secret QR code into the color QR code;

FIG. 2 depicts the encoding steps and intermediate matrices for the case when the public QR code is an aesthetically enhanced color QR code;

FIG. 3 depicts the process for the case when the public QR code is a color QR code with uniform color cells;

FIG. 4 depicts the procedure to decode the secret QR code;

FIG. 5 depicts a diagram of the complete process for the case when the original input image is an embedded color QR code; and

FIG. 6 depicts an example of a distorted shape observed when a squared shape QR code is printed on a conical cup, and the pre-distorted shape that the QR code would have to be stretched to in order for it to appear squared shaped when printed on the conical surface.

Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.

DETAILED DESCRIPTION

The method according to the subject embodies a technique, referred to as Secure QR Codes, which not only provide aesthetically enhanced QR codes but it also allows for security as well. It can embed a standard black and white QR code, referred to as a public QR code, and a secret QR code, both into a secure QR code. The secure QR code produced is composed of colored cells. The public black and white QR code must first be, either aesthetically enhanced into an enhanced colored QR code with techniques such as disclosed in U.S. Patent application 20150324946, which is hereby incorporated by reference, or transformed into a colored QR code with cells of uniform color obtained by transforming each of the black and white cells of the public QR code into cells that takes a color from a subset of possible colors, such that the luminance of each colored cell approximates accurately the black or white luminance values of the public QR code.

The secret QR code is embedded into the secure QR code in such manner that a standard QR code reader can extract the public QR code upon scanning the secure QR code, but not the secret QR code. The secret QR code is thus hidden in the secure QR code and cannot be retrieved unless a key is available. The information stored in the secret QR code can also be secured cryptographically.

Decoding of the secret QR code requires a standard QR code scanner with enhanced software, as well as knowledge of the secure encoding keys. The strategy to merge the information of the secret QR code with the public color QR code to produce the secure QR code relies on the fact that standard QR decoders work with grayscale images, allowing the use the color information orthogonal to the luminance vector direction to encode the cell values of the secret QR code.

The secret QR code information is indirectly encoded onto a set of predefined directions orthogonal to the direction of luminance vector in the RGB color space. According to the values of the secret QR code cells, one of the vectors in the predefine set of orthogonal vectors is selected for the cell of the secret QR code. A secondary matrix is also formed containing the index information. The index information is later hidden into the secure QR code using a watermarking technique and thus it is available at the decoder. The index information can also be transmitted on a separate channel to the decoder in a secure manner. The vector index information, for instance, can be incorporated into the secure QR code by means of special inks which are only visible in the infrared or ultraviolet spectrum. This further increases the security and difficulty of counterfeiting.

The public QR code is obtained by scanning the secure color QR code with a standard QR reader. If in addition, the index information is made available to the scanner, the secret QR code can also be reconstructed from the secure QR code. This method permits to ensure the authenticity of the code by the combination of watermarking, or special inks, with the secret information encoded into the secret QR code. The encoding of the secret QR code into the secure QR code is performed in a sequence of steps as described in FIG. 1.

This method permits to ensure the authenticity of the code by combining a watermarking technique with the secret information encoded in the secret QR code which can further contain an encrypted message using for example private/public key schemes.

Encoding Procedure

The encoding of the secret QR code into the color QR code is performed in a sequence of steps as described in FIG. 1.

The inputs required to generate the combined color QR code denoted as Q3 are: a color QR code denoted as Q1, a secret black and white QR code denoted as Q2, and a set of vectors perpendicular to the luminance direction w_(y)=[0.2898 0.5870 0.1140] in the RGB color space. The invention can be extended to other color spaces and their corresponding set of orthogonal vectors in a straightforward manner by anyone skilled in the art.

The set of vectors in the RGB space is centered at the origin, included in the plane perpendicular to w_(y)=[0.2898 0.5870 0.1140] and oriented in such a way that the angle between consecutive vectors equal 2*pi/K with K being the total number of vectors in the set. Generalizations of unequal angles are feasible as well.

This set of vectors is denoted as Vk={v_k, k=1, . . . , K} and stored in memory to be later transmitted through a secure separate channel to the decoder.

In an example implementation, the set can contain K=4 vectors so that their index values can be stored in a 2 bit variable in memory.

In another example implementation the set can contain K=8 vectors such that their index values can be stored in a 3 bit variable in memory.

The particular location of the vectors in the plane can be selected at random as long as they are uniformly, or approximately, distributed in the orthogonal plane of w_(y).

After the set of vectors is determined, the color QR code image is subdivided into M×N blocks of multiple pixels corresponding to each of the secret QR code cells. For each of this blocks the average intensity in each of the color channels of the color QR code is calculated generating a three dimensional vector denoted as Q1_ij=[R_ij, G_ij, B_ij] and corresponding to the cell with I row index and J column index.

After calculating the set of color vectors Q1_ij=[R_ij, G_ij, B_ij] the angle with respect to the vectors in the set Vk={v_k , k=1, . . . , K} is determined as {alpha_1, . . . , alpha_K} and calculated as

alpha_k=a cos(<v_k,Q1_ij>/∥v_k∥∥Q1_ij∥)

Finally, the minimum and maximum values of this set of angles are calculated as alpha_min=min(alpha_k) and alpha_max =max(alpha_k) and the corresponding vector indices found as

k_max=k such that alpha_k=alpha_max

and

k_min=k such that alpha_k=alpha_min.

This process is repeated for each of the M×N code cells and results in matrix M×N indices corresponding to each of the secret QR code cells and denoted as Idx which is stored in the system memory for later use.

The values stored in position (I,J) of the matrix Idx is obtained according to the values of the (I,J) cell in the secret QR code as

${{Idx}\left( {i,j} \right)} = \left\{ \begin{matrix} k_{\min} & {{{if}\mspace{14mu} Q\; 2\left( {i,j} \right)} = 0} \\ k_{\max} & {{{if}\mspace{14mu} Q\; 2\left( {i,j} \right)} = 1} \end{matrix} \right.$

In addition to the calculation of the index matrix, a second matrix also of size M×N and denoted by O is determined according to

${O\left( {i,j} \right)} = \left\{ \begin{matrix} 1 & {{{{if}\mspace{14mu} {{abs}\left( {{alpha\_ k}\left( {i,j} \right)} \right)}} < {0.5\mspace{14mu} {and}\mspace{14mu} Q\; 2\left( {i,j} \right)}} = 1} \\ 0 & {{{if}\mspace{14mu} {{abs}\left( {{alpha\_ k}\left( {i,j} \right)} \right)}} \geq 0.5} \\ {- 1} & {{{{if}\mspace{14mu} {{abs}\left( {{alpha\_ k}\left( {i,j} \right)} \right)}} < {0.5\mspace{14mu} {and}\mspace{14mu} Q\; 2\left( {i,j} \right)}} = 0} \end{matrix} \right.$

This second matrix is also stored in memory for later use in the process.

In one implementation of the method, each of the values of the matrix Idx are represented in binary notation of and separated into one bit matrices denoted as Idx_1, Idx_2, and Idx_3 when K=3 or Idx_1, Idx_2 when K=2.

After obtaining the binary matrices Idx_1, Idx_2 or Idx_3 and the offset matrix O, these matrices are passed over to the watermarking stage in which each of the (I,J) elements is embedded into the corresponding block of the original QR code by means of a watermarking technique.

Watermarking of Index Matrices

Different watermarking techniques can be employed to hide the index matrices Idx_1, Idx_2, Idx_3 and O into the color QR codes. One example of such techniques is spatial watermarking using DCT transform. This implementation of the process consists on calculating the DCT transform of the different color channels of each of the sub blocks in the color QR code and replacing a set of coefficients with the corresponding Bit values of one of the matrices Idx_1, Idx_2 and Idx_3.

These values might be previously scrambled according to a private key to improve the secrecy.

After the coefficients are replaced with the binary values, the inverse transform is calculated in each of the blocks and the color QR code image reassembled.

If there only two matrices Idx_1 and Idx_2 they can be watermarked into the R and G channels and the B channel can be used to store the values O.

In the case the there are three matrices Idx_1, Idx_2 and Idx_3 the R, G and B channels are used and in this case the matrix O can be stored in a non-visible channel which is printed using inks reflective only in the infrared or ultraviolet spectrums.

At the end of this process the resulting color QR code is stored in memory and transmitted over suitable channels which can include, a computer network, a physical medium such as printing medium, etching, or LCD screen.

An example of the encoding steps and intermediate matrices for the case when the pubic

QR code is a color QR code is depicted in FIG. 2. FIG. 3 depicts the process for the case when the public QR code is color QR code with uniform color cells.

Decoding Process

The decoder receives as inputs, the combined color QR code though a public unreliable channel and the same set of vectors used to generate the index matrices through a separate secure channel.

From the received secured QR code (Q3) two messages can be extracted, if the code is scanned with a regular QR decoder, the public message associated with the original aesthetically enhanced QR code is recovered, but no secret message can be obtained using this regular decoder. The procedure to decode the secret QR code is depicted in FIG. 4.

Extract Watermarked Matrices

To recover the secret message, the first step is to extract both Idx and O matrices by subdividing the received secure QR code image into M×N blocks and calculating the DCT transform on each color layer from which the projection binary matrices Idx_1, Idx_2 and Idx_3 are recovered for the case of K=8 vectors or Idx_1, Idx_2 for the case of K=4. If a fourth non visible channel was used in addition to the R, G and B channel, this image is also captured under special illumination and the third matrix O is recovered in a similar fashion as in the visible color channels. Any image watermarking method can be used to store the index information, not just DCT based methods. If the matrices Idx_1, Idx_2 and Idx_3 were scrambled in the encoding process this process is reversed using a cryptographic key and the matrix Idx containing the original vector indices reassembled.

Reconstruct Secret QR Code Image

Using the indices in each of the elements of the matrix Idx, the corresponding vector in the set Vk is selected and the greyscale value of the secret code calculated as

Qsecret (i,j)=<v_Idx(ij), Qblock(i,j)>+O(Ij)

Where Qblock is an [R,G,B] vector calculated from the received image Q3 by averaging the color values in each of the color layers.

Decoding Secret QR Code

The obtained grayscale image is the passed to a standard QR decoder which recovers the secret message.

For certain applications this message can be further encrypted so that only a receiver with appropriate cryptographic key can decode it.

A diagram of the complete process for the case when the original input image is an embedded color QR code is depicted in FIG. 5.

Secure QR codes can be used in a number of applications including secure QR code labels for tamper resistant and anti-counterfeit packaging of goods, and parts. These secure labels can be used in final packaging of goods or in securing parts in a manufacturing or assembling supply chain.

Secure QR code labels are such that by copying or peeling-back the label material will cause distortion of the watermarked features carrying the information required for decoding secret QR codes. Finally, secure QR code labels will often be attached to non-planar surfaces, like package edges or cylinders as illustrated in FIG. 6. To this end, the invention includes methods to geometrically predistort the secure QR labels such that when these are attached to the edges of a package, or any non-planar surface, the secure QR code projection onto a standard QR code reader will appear as a non-distorted square code with uniform cells which can then be reliably decoded by a standard QR code reader.

In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued. 

What is claimed is:
 1. A method for generating colored secure QR codes comprising a standard visible QR code and a secondary hidden QR code, the method comprising the steps of: (a) obtaining a color QR code represented as matrix with P rows and Q columns; (b) obtaining a secondary black and white QR code represented as matrix with P rows and Q columns; (c) obtaining a set of K three dimensional vectors, equally spaced in a plane perpendicular to the vector w_(y)=[0.2898 0.5870 0.1140], or a vector of approximately in the same direction in the RGB color space; (d) subdividing the color QR code in sub blocks of M rows and N columns corresponding to the size of the QR cells in the secondary QR code; (e) calculating the average color of the sub blocks in each of the color channels and store its values in a vector v=[R,G,B]; (f) performing the inner product of the resulting color vector for each of the sub blocks over the set of K vectors obtained in step (c); (g) finding the index of vectors corresponding to the maximum and minimum projection for each of the sub blocks; (h) storing the index for the minimum projection vector if the value of the secondary QR code is equal to 0 in the corresponding sub block or the index of the maximum projection vector if the value of the secondary QR code is equal to 1, wherein these indices are stored for each sub block into a matrix of M rows and N columns; (i) finding for each sub block and offset value depending on the values of the maximum or minimum projection values obtained in step (g), wherein if the absolute of value of the projection is less than 0.5 and the value of the secondary QR code is equal to 0 then the offset value is set to −1, if the absolute value of the projection is less than 0.5 and the value of the secondary QR code is equal to 1 then the offset value is set to 1, and if the absolute value of the projection is greater than 0.5 then the offset value is set to 0; (j) calculating the binary representation of the matrix of indices obtained in step (g) and store each of its bits in a different binary matrix; (k) storing the binary matrices obtained in step (j) into different color layers of the original color QR code using a watermarking technique; (l) storing the offset matrix obtained in step (i) intro one of the color channels via a watermarking technique or a different spectral channel by means of special inks reflective in non-visible spectral bands; and (m) transmitting the resulting color QR code with the offset and index matrices hidden through a communication channel.
 2. The method of claim 1, wherein the set of vectors in step (c) has a total of K=2̂n element equally spaced.
 3. The method of claim 2, wherein the set of vectors is unequally spaced.
 4. The method of claim 1, wherein the set of vectors in step (c) has an arbitrary number of vectors evenly spaced.
 5. The method of claim 4, wherein the set of vector in unequally spaced.
 6. The method of claim 1, wherein the binary matrices in step (j) are stored in the R, G and B layers of the original QR code.
 7. The method of claim 1, wherein the spatial watermarking technique consisting of replacing some of the DCT coefficients of the sub blocks are replaced with the corresponding bit values from the binary matrices in step (j).
 8. The method of claim 7, wherein the DCT transform is replaced with discrete wavelet transform and the coefficients are stored in the high frequency components of the transform.
 9. The method of claim 1, wherein the offset matrix or the binary matrices obtained in step (h) and step (i) are printed on special ink reflective in the infrared band of the spectrum.
 10. The method of claims 1, wherein the RGB color space is replaced by any other color space vector representation, such as CMY, CMYK, sRGB, or Lab, and the luminance reference vector is modified according to the chosen color space, and the set of perpendicular vectors are created according to the luminance reference vector in the chosen color space.
 11. The method of claim 1, wherein the offset matrix or the binary matrices obtained in step (h) and step (i) are printed on a special ink reflective in the ultraviolet band of the spectrum.
 12. The method of claim 1, wherein the resulting color QR code of step (m) is transmitted over a network as digital format.
 13. The method of claim 1, wherein the resulting color QR code of step (m) is transmitted via a printing media, which can comprise a paper medium, plastic medium, fabric or other printable surface.
 14. A method for decoding the color QR code generated by following the procedure in claim 1, the method comprising the steps of: (a) receiving the color QR code thought the specified channel and convert into a color matrix with RGB channels stored into memory as matrix of P rows and Q columns; (b) receiving by a separate secured channel the set of projection vectors defined in claim 1c and store them in memory for later use; (c) sub-dividing the color matrix of P row and Q columns in the sub blocks of M×N size corresponding to the size of the secondary QR code, information which is also obtained via a secondary secure channel; (d) reversing the watermarking procedure described in step (k) of claim 1 to obtain all the binary matrices defined in step (j) of claim 1; (e) finding the index number of the projection vector corresponding to the sub block from the binary matrices found; (f) extracting the offset matrix form one of the color layers of the received QR code or the non-visible spectral band via special illumination; (g) for each of the sub blocks, projecting the average color values in each of the three color layers [R, G, B] over the vector corresponding to the index found in step (e); (h) adding to the resulting projection value the offset value corresponding to that sub block obtained in step (f); (i) storing the resulting values into a matrix of size M×N and pass it to a standard QR decoder to extract the messages stored in the secondary QR code; and (j) passing the received color QR code to a standard QR decoder to extract the message in the primary color QR code.
 15. The method of claim 13, wherein the watermarking procedure is reversed by calculating the DCT transform in each of the sub blocks for each of the color layers and extracting the binary values from a set of pre specified band transmitted to the receiver from a secondary secure channel.
 16. The method of claim 13, wherein the watermarking procedure is reversed by calculating the inverse discrete wavelet transform and extracting the binary values from a set of pre specified coefficients in the high frequency bands transmitted to the receiver through a secondary secure channel.
 17. The method of claim 13, wherein the offset or binary matrices values are obtained by illuminating the encoded QR code with infrared light and capturing the resulting image in the infrared band of the spectrum via a special detector sensitive to that section of the spectrum.
 18. The method of claim 13, wherein the offset or binary matrices values are obtained by illuminating the encoded QR code with ultraviolet light and capturing the resulting image in the ultraviolet band of the spectrum via a special detector sensitive to that section of the spectrum.
 19. The method of claim 13, wherein an additional decryption stage is necessary to decode the secondary message and it is only possible with the appropriate cryptographic key.
 20. The methods of claim 1, wherein the colored secure QR code is produced and printed on a label.
 21. The methods of claim 1, wherein the colored secure QR code is produced and printed on transparent peel-off label that can be attached to a variety of packaging of different materials.
 22. The methods of claim 1, wherein the security features of the colored secure QR code label, such as the hidden watermarks or special inks are distorted by the action of peeling off the QR code label from the packaging, such that the secret QR code cannot be read by the special reader.
 23. The methods of claim 1, wherein the security features of the colored secure QR code label, such as the hidden watermarks or special inks are distorted by the action of cutting the QR code label from the packaging, such that the secret QR code cannot be read by the special reader.
 24. A method for producing a machine readable standard QR Code printed on a non-flat surface, the method comprising the steps of: (a) generating a QR-code defined on a 2D surface addressed by an x and y coordinate such that the information bearing component of the QR code is addressable by integer coordinate pairs where x=xi and y=yi for i=1, 2, 3, . . . ; (b) defining a 2D transform f(x,y) such maps the 2D coordinates x and y to some new 2D coordinate x′, y′; (c) transforming the standard 2D QR code to (x′,y′) such that the information bearing component at integer coordinate (xi,yi) is mapped to some (not necessarily integer) coordinate (xi′,yi′); and (d) printing the transformed standard QR code on a 2D substrate (target surface).
 25. The method of claim 24, wherein the transform of step (b) is a linear transform defined by an m×n matrix A for some integer m and n.
 26. The method of claim 24, wherein the transform of step (b) involves representing the 2D spatial coordinate (x,y) by the homogenous space coordinate (x,y,w) where w is a scale parameter.
 27. The method of claim 24, wherein the transform of step (b) is non-homogeneous in the space coordinate and the transformations are either linear, nonlinear, or a combination.
 28. The method of claim 24, wherein the transform of step (b) is tailored for QR code label printing, across edges of packaging, or on different adjacent surfaces of packages, and the space coordinate transformations on such non-flat surfaces can be either linear, nonlinear, or a combination of both.
 29. The method of claim 1, wherein the colored secure QR Codes is printed on a non-flat surface as in the steps in claim
 24. 30. The methods of claim 1, wherein the cells of the colored secure QR code are geometrically pre-distorted according to the intended packaging surface, such as box edges or bottle cylinders, wherein the pre-distorted secure QR code cells are such that when these are attached to any non-planar surface and then projected onto a standard QR code reader, the projected cells will appear as a non-distorted uniform cells of a square QR code which can then be reliably decoded by a standard QR code reader. 